package dancereal;

public class J16_OOP2 {
	/*
	 * 메서드 method 클래스의 객체가 할 수 있는 행위를 정의 메서드에는 선언부와 몸체가 있음
	 * 
	 * 접근제한자 반환유형 메서드이름(인수 목록){ 메서드 몸체 } 메서드 선언부는 반환유형, 메서드 이름, 인수목록임 메서드 선언부를
	 * 메서드 서명이라고도 함
	 * 
	 * 특별한 메서드인 main 은 프로그램의 진입점을 제공 일반적으로 프로그램은 수 많은 클래스로 구성됨 그 중 주가 되는 메서드가 하나
	 * 있어야 하는데 그것이 바로 main 메서드임
	 */

	public static void main(String[] args) {
		Students taehee = new Students();
		taehee.kor = 99;
		taehee.eng = 98;
		taehee.mat = 99;
		
		taehee.showSungJuk();
		
	}

}

// 학생 클래스
class Students {
	int stdno;
	int kor;
	int eng;
	int mat;

	// 총점 구하기
	int computeTotal(){
		return kor + eng + mat; 
	}
	
	// 평균 구하기
	float computeAvg() {
		return (float) this.computeTotal() / 3;

	}

	// 학점 구하기
	void computeGrade() {
		

		switch ((int)computeAvg() / 10) {
		case 10:
		case 9:
			System.out.println("수");
			break;
		case 8:
			System.out.println("우");
			break;
		case 7:
			System.out.println("미");
			break;
		case 6:
			System.out.println("양");
			break;
		default:
			System.out.println("가");

		}
	}


	//모든 결과 출력
void showSungJuk(){
	System.out.println(this.computeTotal());
	System.out.println(this.computeAvg());
	this.computeGrade();
}
}